การติดตั้ง Microsoft IIS ใน Windows Server บน EC2 และทดลองใช้งาน
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้ผมจะมาแนะนำการติดตั้ง Microsoft IIS ใน Windows Server บน EC2 และทดลองใช้งาน
Microsoft IIS คืออะไร
Internet Information Services (IIS) คือซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่รวมอยู่ในซีรีส์ Windows Server ซึ่งเป็นระบบปฏิบัติการสำหรับเซิร์ฟเวอร์ของ Microsoft ที่ได้รับความนิยมมากที่สุด รองจาก Apache HTTP Server, NGINX, Cloudflare Server และ LiteSpeed
เราสามารถใช้เซิร์ฟเวอร์ที่ปลอดภัยและยืดหยุ่นนี้เพื่อโฮสต์ทุกอย่างบนเว็บ ตั้งแต่แอปพลิเคชันไปจนถึงการสตรีมสื่อได้ โดยมีสถาปัตยกรรมแบบเปิดที่ทำให้สามารถปรับขนาดได้และใช้งานได้หลากหลาย
IIS รองรับ Protocols ต่อไปนี้
- Hypertext Transfer Protocol (HTTP)
- Hypertext Transfer Protocol Secure (HTTPS)
- File Transfer Protocol (FTP)
- File Transfer Protocol Secure (FTPS)
- Simple Mail Transfer Protocol (SMTP)
- Network News Transfer Protocol (NNTP)
การเตรียม Windows Server
・สร้าง Windows Server ใน EC2 (ยังไม่ต้อง Login)
・เชื่อมโยง Elastic IP (EIP)
・Login ไปยัง Windows Server
สร้าง Windows Server ใน EC2
หมายเหตุ: เมื่อสร้าง Windows Server เสร็จแล้วยังไม่ต้อง Login
ดูวิธีการสร้าง Windows Server ใน EC2 ได้ที่ลิงก์ด้านล่างนี้
ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2
※Create Key pairs
Key pairs:tinnakorn-win-iis
(ตั้งชื่อที่ต้องการ)
Key pair type:RSA
Private key file format: ◉pem
※Launch instances
Name and tags
Name:tinnakorn-win-iis
(ตั้งชื่อที่ต้องการ)Application and OS Images (Amazon Machine Image)
Amazon Machine Image (AMI):Microsoft Windows Server 2022 Base
Instance type
Instance type:t3a.medium
Key pair (login)
Key pair name - required:tinnakorn-win-iis
(key pair ที่สร้างขึ้นเมื่อสักครู่นี้)Network settings
Firewall (security groups)
Security group name - required:tinnakorn-win-iis
(ตั้งชื่อที่ต้องการ)
Description - required:tinnakorn-win-iis
(ป้อนตามต้องการ)
Inbound security groups rules
Security group rule 1 (TCP, 3389, xxx.xxx.xxx.xxx/32)
Type:rdp
| Source type:My IP
| Source:xxx.xxx.xxx.xxx/32Configure storage
1x:30
GiBgp2
Root volume (Default)
เชื่อมโยง Elastic IP (EIP)
Instance ที่ไม่มีการใช้งาน EIP นั้น หลังจาก Stop การใช้งานไปแล้ว และทำการ Start Instance นั้นอีกรอบ ตัวระบบจะเปลี่ยนแปลง IP ใหม่ทุกครั้งที่มีการ Start และ Stop Instance ดังนั้นจำเป็นต้องเชื่อมโยง EIP ให้กับ Instance เพื่อทำการล็อก IP แล้วการใช้งานหลังจากนั้น เมื่อทำการ Start และ Stop Instance ก็จะเป็น IP เดิมทุกครั้งที่เราใช้งาน
ดูวิธีการเชื่อมโยง Elastic IP (EIP) ได้ที่ลิงก์ด้านล่างนี้
Login ไปยัง Windows Server
เหตุผลที่ต้องเชื่อมโยง EIP ก่อนก็เพราะว่าหลังจากที่เชื่อมโยง EIP เสร็จแล้ว Public IPv4 address (Public IP) ของ EC2 Instance จะเปลี่ยนไปเป็นอันเดียวกับ EIP และในตัวไฟล์ Remote Desktop ก็จะเป็น Public IP เดียวกับ EC2 Instance เสมอ ดังนั้นถ้าเราเชื่อมโยง EIP เราจะสามารถ Login เข้าไปยัง Windows Server ผ่านไฟล์ Remote Desktop ที่ดาวน์โหลดมาหลังจากเชื่อมโยง EIP ได้ตลอด ! แต่ถ้าไม่เชื่อมต่อ EIP ไว้ ทุกครั้งที่ Start EC2 Instance เราต้องดาวน์โหลดไฟล์ Remote Desktop ทุกครั้งเพื่อ Login เข้าไปยัง Windows Server
ดูตัวอย่างที่นี่เฉพาะหัวข้อนี้: การเชื่อมต่อกับ Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP
การติดตั้ง Server Manager
ขั้นตอนนี้จะดำเนินการใน Windows Server (Remote Desktop)
มาที่ช่องค้นหาด้านล่างซ้าย ค้นหาคำว่า Server Manager
แล้วคลิก Server Manager
เมื่อเข้ามาหน้านี้แล้วให้ดูที่ ROLES AND SERVER GROUPS ด้านล่าง เมื่อมี File and Storage, Loacal Server และ All Servers แสดงขึ้นมาแล้ว ให้ดูที่ด้านขวาบน แล้วเลือกแท็บ Manage
และเลือก Add Roles and Features
แล้วจะมีหน้าต่าง Add Roles and Features Wizard แสดงขึ้นมาเพื่อให้ติดตั้งโปรแกรม ครั้งนี้จะติดตั้ง Microsoft IIS
มาเริ่มที่หัวข้อ Before You Begin คลิก Next >
หัวข้อ Installation Type ใช้เป็นค่าเริ่มต้น ⦿ Role-based or feature-based installation แล้วคลิก Next >
หัวข้อ Server Selection คลิก Next >
หัวข้อ Server Roles เลื่อนลงมาล่างสุด ให้ติ๊ก ▢ Web Server (IIS) แล้วจะมีหน้าต่างคำถาม Add features that are required for Web Server (IIS)? แสดงขึ้นมา ให้คลิก Add Features
เมื่อเป็น ☑ Web Server (IIS) แล้ว ให้คลิก Next >
หัวข้อ Features ให้คลิก ▹
▣ .NET Framework 4.8 Features (2 of 7 Installed) ขยายออกมา แล้วติ๊ก ☑ ASP.NET 4.8 แล้วคลิก Next >
หัวข้อ Web Server Role (IIS) คลิก Next >
หัวข้อ Role Services เลื่อนลงมาล่างสุด แล้วคลิก ▹
Application Development แล้วติ๊ก ▢ ASP.NET 4.8 แล้วจะมีหน้าต่างคำถาม Add features that are required for ASP.NET 4.8? แสดงขึ้นมา ให้คลิก Add Features
เมื่อเป็น ☑ ASP.NET 4.8 แล้ว ให้คลิก Next >
หัวข้อ Confirmation ตรวจสอบการตั้งค่าสำหรับการติดตั้งได้ที่หน้านี้ แล้วคลิก Install
ต้องรอการติดตั้งโปรแกรมสักครู่ จนกว่าจะเป็นสถานะ Installation succeeded on [your_hostname]. แล้วคลิก Close
และปิดโปรแกรม Server Manager ไปได้เลย
เพียงเท่านี้การติดตั้ง Microsoft IIS ก็เสร็จเรียบร้อยแล้ว
การปิดใช้งาน Hide Extension
ขั้นตอนนี้จะดำเนินการใน Windows Server (Remote Desktop)
เข้ามาที่ File Explorer ที่ไหนก็ได้ แล้วเลือกแท็บ View
และคลิกที่ไอคอนตรง Options ตามรูปภาพ
เลือกแท็บ View
แล้วติ๊ก ✓ ตรง Hide extension for known file types ออก แล้วคลิก Apply
และคลิก OK
เตรียมไฟล์
ขั้นตอนนี้จะดำเนินการใน Windows Server (Remote Desktop)
ให้ทำการเตรียมไฟล์ index.aspx เพื่อใช้ทดสอบการใช้งานในขั้นตอนถัดไป
เข้าไปที่ wwwroot ตาม path ด้านล่างนี้
C:\inetpub\wwwroot
แล้วสร้างไฟล์ index.aspx
โดยคลิกขวาที่นี่ แล้วเลือก New > เลือก Text Document > เปลี่ยนชื่อเป็น index.aspx + Enter และคลิก OK
แล้วนำไฟล์ index.aspx ไปเปิดใน Notepad โดยเปิด Notepad ขึ้นมา แล้วลากไฟล์ index.aspx ลงไป ก็จะแสดงหน้าว่างและมีชื่ออยู่ที่ด้านซ้ายบนแบบนี้
คัดลอกโค้ดด้านล่างนี้วางลงในไฟล์ index.aspx แล้ว Save ให้เรียบร้อย
โค้ดนี้คือการแสดงข้อความ "Hello ASP.NET World." ในหน้าเว็บเบราว์เซอร์
<%@ Page Language="C#" %> <script runat="server"> private void Page_Load() { Msg.Text = "Hello ASP.NET World."; } </script> <html> <body> <asp:Label runat="server" id="Msg" /> </body> </html>
วิธีการเผยแพร่ไปยัง Internet
ทดสอบการใช้งานใน Windows Server (Remote Desktop)
ขั้นตอนนี้จะดำเนินการใน Windows Server (Remote Desktop)
เปิดเบราว์เซอร์ Edge ขึ้นมา แล้วเปิดหน้าเว็บไซต์ด้วย URL ด้านล่างนี้
http://localhost/index.aspx
ถ้าแสดงข้อความ "Hello ASP.NET World." แบบนี้ก็ถือว่าเสร็จเรียบร้อยแล้ว
การเผยแพร่ทางอินเทอร์เน็ต
ขั้นตอนนี้จะดำเนินการใน OS ที่เราใช้งาน (OS ที่ผมใช้คือ Windows 11)
ก่อนอื่นเราต้องเพิ่ม HTTP ใน Security Group ของ Instance ที่เรากำลังใช้งานก่อนเพื่อให้สามารถแสดงหน้าเว็บไซต์ของ Public IPv4 DNS ได้
เข้าไปที่ Instance ของเรา แล้วเลื่องลงมาตรงกลาง เลือกหัวข้อ Security
แล้วคลิกที่ลิงก์ของ Security groups
มาที่หัวข้อ Inbound rules แล้วคลิก Edit inbound rules
ด้านล่างขวา
คลิก Add rule
ด้านล่างซ้าย แล้วเลือก Type: HTTP
| Source: Anywhere-IPv4
และคลิก Save rules
กลับไปที่หน้า EC2 Instance ของเราอีกครั้ง แล้วคัดลอก Public IPv4 DNS
เตรียมไว้ (Public IPv4 address ก็สามารถใช้ได้ แต่ครั้งนี้จะใช้ Public IPv4 DNS)
เปิดเบราว์เซอร์ที่เรากำลังใช้งานอยู่บนอุปกรณ์ของเราขึ้นมา แล้วเปิดหน้าเว็บไซต์ด้วย URL ด้านล่างนี้
http://[Your Public IPv4 DNS]/index.aspx
ถ้าแสดงข้อความ "Hello ASP.NET World." แบบนี้ก็ถือว่าเสร็จเรียบร้อยแล้ว
สรุป
จากที่ผมได้ลองใช้งานดูแล้ว ก็เป็นอีกหนึ่งซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่ใช้งานง่ายใน Windows Server นอกจากนี้ยังสามารถเผยแพร่หน้าเว็บไซต์โปรเจกต์ผ่านเว็บเบราว์เซอร์ใน Windows Server และใน OS บนอุปกรณ์ของเราโดยใช้ Public IP ของ EC2 Instance ได้อีกด้วย
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP จากบริษัท Classmethod (Thailand) ครับ !